/**
 * 合并两个有序列表， 其实可以换一个思路， 先将两个数组组合再进行排序
 * @param A1
 * @param A2
 * @returns {this}
 */

function merge(A1, A2) {
    return [...A1, ...A2].sort((a, b) => a - b)
}

const A1 = [1, 2, 3, 4, 6, 10]
const A2 = [2, 3, 4, 5, 6, 90]

console.log(merge(A1, A2));


/**
 * 合并两个有序数组
 * @param A1
 * @param A2
 * @returns {[]}
 */
function mergeV2(A1, A2) {
    let i = 0;
    let j = 0;
    const res = []

    while (i < A1.length && j < A2.length) {
        if (A1[i] < A2[j]) {
            res.push(A1[i])
            i++
        } else {
            res.push(A2[j])
            j++
        }
    }

    // A2跑完了
    while (i < A1.length) {
        res.push(A1[i])
        i++
    }

    // A1跑完了
    while (j < A2.length) {
        res.push(A2[j])
        j++
    }
    return res;
}

console.log(mergeV2(A1, A2));
